// async function abc() {
//   for (let index = 0; index < 5; index++) {
//     console.log('asyn' + index);    
//   }
//   return 'asyn function done';
// }

// setTimeout(()=>{
//   for (let index = 0; index < 5; index++) {
//     console.log('setTimeout' + index);    
//   }
// },0);

// var p = new Promise((s,r)=>{  
//   for (let index = 0; index < 5; index++) {
//     console.log('Promise' + index);    
//   }
//   s('done');
// })

// Promise的执行函数(executor)是创建Promise实例时就执行了
// const promise = new Promise((r) => {
//   console.log('promise 1');
//   setTimeout(()=>{
//     console.log('promise time out done');
//   },1000);

//   r('promise done');

//   console.log('promise 2');
// })

// const promise = new Promise((r) => {
//   console.log('promise 1');
//   setTimeout(()=>{
//     console.log('promise time out done');
//   },1000);

//   r('promise done');

//   console.log('promise 2');
// })


// const promise = new Promise((resolve, reject) => {
//   console.log('promise 1');

//   // 这就是塞进来的异步操作
//   setTimeout(()=>{
    
//     for (let index = 0; index < 5; index++) {
//       console.log('Promise' + index);    
//     }

//     resolve('promise done');

//   },1000);
  
//   console.log('promise 2');
// })
function a(arg){
  return new Promise((resolve, reject) => {
      resolve(arg);
    })
}
function b(arg){
  return new Promise((resolve, reject) => {
      resolve('你好，' + arg);
    })
}
async function asynFunction(){
  ///console.log('asynFunction begin');

  var aResult = await a('北京');
  var bResult = await b(aResult);

  return bResult;
  // // 还有用一个for循环代表大数据量处理
  // for (let index = 0; index < 5; index++) {
  //   console.log('asynFunction process ' + index);    
  // }
  //const result = await promise;
  // const result = await 'abc';
  // console.log('asynFunction 2');
  // console.log('asynFunction -- promise result :' + result);
  //return 'asynFunction done';

  //console.log('asynFunction end');
}

console.log('1');
// abc().then((v)=>{console.log(v)});
// p.then((v)=>{console.log(v)});
//promise.then((v)=>{console.log(v)});
// promise.then((v)=>{console.log(v)});
// asynFunction().then((v)=>{console.log(v)});
asynFunction().then((v)=>{console.log(v)});
console.log('2');

